import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)  // 全局注册声明使用vuex 

// 每一个 Vuex 应用的核心就是 store（仓库）。“store”基本上就是一个容器，它包含着你的应用中大部分的状态 (state)
const store = new Vuex.Store({
  // 一个对象就包含了全部的应用层级状态  
  state: {
    count:1000,
    word:"2114 - 你现在拖进度了吗?",
    city:"来武汉看樱花...",
    msg:'Are you Sleep?',
    message:'wuhan2114-daydayup',
    data:{
      flag:true,
      test:"test - test - test"
    }
  },
  // 你不能直接改变 store 中的状态。改变 store 中的状态的唯一途径就是显式地提交 (commit) mutation
  mutations: {
    countAdd(state){
      state.count+=1;
    },
    countDesc(state){
      state.count-=1;
    },
    changeCount(state,payload){  // payload 参数载荷 
      state.count+=payload;
    },
    changeCityOnce(state,payload){
      state.city = payload;
    },
    changeWord(state,payload){
      state.word = payload;
    },
    changeMsg(state,payload){
      state.msg = payload;
    },
    changeDataFlag(state,payload){
      // state.data.flag = !state.data.flag  对象 深浅拷贝  
      state.data = {
        ...state.data,
        flag:payload
      }
    },
    changeDataTest(state,payload){
      state.data = {
        ...state.data,
        test:payload 
      }
    }
  },
  actions: {

  },
  modules: {

  }
})
export default  store;